(function ($) {
    function index() {
        var self = this;
        self.dom = $(document);
        self.pageNum = 1;
        self.init();
    }

    index.prototype = {
        init: function () {
            var self = this;
            self.queryWechatInfos(self.pageNum);
            self.bindEvent();
            self.buttonClick();
            return self;
        },
        bindEvent: function () {
            var self = this;
            // 绑定编缉问题窗口事件
            self.dom.on("click", ".i_answer_text .gray_pen", function () {
                var oVal = $(this).siblings("span").text();
                $(this).parent().siblings(".i_answer_edit").show();
                $(this).parent().siblings(".i_answer_edit").find(".text").val(oVal).select();
                $(this).parent().hide();
            });
            // 菜单点击
            self.dom.on("click", ".m_nav_list li a", function () {
                $(".m_nav_list li").removeClass("active");
                $(this).parent("li").addClass("active");
                $(".m_nav_list li a").each(function () {
                    $("." + $(this).attr("menu-type")).hide();
                });
                // 查询微信公众号信息
                if ($(this).attr("menu-type") == "type-index") {
                    self.queryWechatInfos(self.pageNum);
                }
                // 菜单管理
                if ($(this).attr("menu-type") == "type-count") {
                    self.queryWechat(self.pageNum);
                }
                $("." + $(this).attr("menu-type")).show();
            });
            // 弹出框绑定drag()

            self.dom.find(".dialog_hd").hover(function () {
                $(this).css("cursor", "move");
                self.drag();
            }, function () {
                $(this).css("cursor", "default");
            });
            // 弹出框 关闭按钮
            self.dom.on("click", ".closed ,.close_btn ,.m_btn_cancel ,.m_btn_close", function () {
                var btn = $(this).attr("class");
                if (!$(this).parents(".dialog").siblings(".dialog").is(":visible")) {
                    $("body").css("overflow", "visible");
                    $("html").css("overflow", "auto");
                }
                $(this).parents(".dialog").hide();
                if (btn.indexOf("closed") > -1
                    || btn.indexOf("m_btn_cancel") > -1
                    || btn.indexOf("m_btn_close") > -1) {
                    // 重置表单
                    self.reset();
                }

            });

            // 分页》页码跳转框

            $(".page_input input.go ,.page_input input.text").on({

                focus: function () {

                    $(this).parent().addClass("focus");
                },
                blur: function () {
                    $(this).parent().removeClass("focus");
                }
            });

            // 页面表格 hover
            $(".m_table_panel tr").hover(function () {
                $(this).addClass("hover");
            }, function () {
                $(this).removeClass("hover");
            });

            return self;
        },
        buttonClick: function () {
            var self = this;
            // 新增问题
            self.dom.on("click", ".i_create_btn", function () {
                self.dialogPos("#js_edit_question");
            });
            self.dom.on("click", ".gray_exit", function () {
                if (confirm("你确定要退出系统吗？")) {
                    window.location = "./loginOut";
                }
            });
            //公众号信息添加
            self.dom.on("click", ".addBtn", function () {
                var wechatName = $("#wechatName").val();
                var appId = $("#appId").val();
                var appSecret = $("#appSecret").val();
                var wechatType = $("#wechatType").val();
                var wechatMemo = $("#wechatMemo").val();
                if (wechatName === "") {
                    alert("名称不能为空");
                    return;
                }
                if (appId === "") {
                    alert("appid不能为空！！");
                    return;
                }
                if (appSecret === "") {
                    alert("appSecret不能为空！！");
                    return;
                }
                if (wechatType === "") {
                    alert("公众号类型不能为空！！");
                    return;
                }
                if (wechatMemo === "") {
                    alert("描述不能为空！！");
                    return;
                }
                $('#wechatForm').ajaxForm(function (data) {
                    if (data.code === "1000") {
                        alert("添加成功！");
                        if ($(".dialog").siblings(".dialog").is(":visible")) {
                            $("body").css("overflow", "visible");
                            $("html").css("overflow", "auto");
                        }
                        $(".dialog").hide();
                        //重置表单
                        self.reset();
                        self.queryWechatInfos(1);
                    } else {
                        alert("添加失败！！");
                    }
                }).submit();
            });
            //删除
            self.dom.on("click", ".gray_del", function () {
                var id = $(this).attr("wechatId");
                self.deleteWechatInfo(id);
            });
            // 修改密码
            self.dom.on("click", ".updateBtn", function () {
                var oldPassword = $("#oldPassword").val();
                var newPassword = $("#newPassword").val();
                var againPassword = $("#againPassword").val();
                if (newPassword.length < 6) {
                    $("#newPasswordTips").addClass("err_msg");
                    $("#newMsg").text("密码长度必须6位以上！！");
                    return;
                } else {
                    $("#newPasswordTips").removeClass("err_msg");
                    $("#newMsg").text("");
                }
                if (againPassword != newPassword) {
                    $("#againPasswordTips").addClass("err_msg");
                    $("#againMsg").text("两次新密码输入不一样！！");
                    return;
                } else {
                    $("#againPasswordTips").removeClass("err_msg");
                    $("#againMsg").text("");
                }
                $.post("userInfo/updatePassword", {
                    "oldPassword": oldPassword,
                    "newPassword": newPassword
                }, function (status) {
                    if (status == "success") {
                        alert("修改密码成功,请牢记!!");
                        if ($(".dialog").siblings(".dialog").is(":visible")) {
                            $("body").css("overflow", "visible");
                            $("html").css("overflow", "auto");
                        }
                        $(".dialog").hide();
                        $("#oldPasswordTips").removeClass("err_msg");
                        $("#oldMsg").text("");
                        // 重置表单
                        //resetPassword();
                        // 退出系统重新登录
                        window.location = "./loginOut";
                    } else if (status == "passwordInvalid") {
                        $("#oldPasswordTips").addClass("err_msg");
                        $("#oldMsg").text("旧密码错误！！");
                    } else {
                        alert("修改密码失败！！");
                    }
                });
            });
            return self;
        },
        // 拖动
        drag: function () {
            var self = this;
            self.dom.on("mousedown", ".dialog_hd", function (ev) {
                var ev = ev || event;
                var disX = ev.clientX - $(this).parent().offset().left;
                var disY = ev.clientY - $(this).parent().offset().top;
                var _$this = $(this);
                self.dom.on('mousemove', function (ev) {
                    var ev = ev || event;
                    var L = ev.clientX - disX;
                    var T = ev.clientY - disY
                        - self.dom.scrollTop();
                    if (L < -_$this.parent().width() * 0.8) {
                        L = -_$this.parent().width() * 0.8;
                    } else if (L > $(window).width() - _$this.parent().width() * 0.2) {
                        L = $(window).width() - _$this.parent().width() * 0.2;
                    }
                    if (T < 0) {
                        T = 0;
                    } else if (T > $(window).height() - _$this.parent().height() * 0.2) {
                        T = $(window).height() - _$this.parent().height() * 0.2;
                    }
                    _$this.parent().css({
                        left: L,
                        top: T,
                        cursor: "move"
                    });
                });
                self.dom.on("mouseup", function () {
                    $(this).unbind("mousemove");
                    _$this.parent().css("cursor", "default");
                });
                ev.preventDefault();
                return self;
            });
        }, reset: function () {
            $("#wechatForm")[0].reset();
        },// 弹出框
        dialogPos: function (id) {
            var self = this;
            $("body").css("overflow", "hidden");
            $("html").css("overflow", "visible");
            $(id).css("display", "block");
            var $dialog_main = $(id).find(".dialog_main")
            var num = self.getRandomNum(-100, 100);
            if ($(id).siblings(".dialog").is(":visible")) {
                if ($dialog_main.outerHeight() > $(window).height()) {
                    $dialog_main.css({
                        top: 0,
                        left: ($(window).width() - $dialog_main.outerWidth()) / 2
                            + num + "px"
                    });
                } else {
                    $dialog_main.css({
                        top: ($(window).height() - $dialog_main.outerHeight()) / 2
                            + "px",
                        left: ($(window).width() - $dialog_main.outerWidth()) / 2
                            + num + "px"
                    });
                }
            } else {
                if ($dialog_main.outerHeight() > $(window).height()) {
                    $dialog_main.css({
                        top: 0,
                        left: ($(window).width() - $dialog_main.outerWidth()) / 2
                            + "px"
                    });
                } else {
                    $dialog_main.css({
                        top: ($(window).height() - $dialog_main.outerHeight()) / 2
                            + "px",
                        left: ($(window).width() - $dialog_main.outerWidth()) / 2
                            + "px"
                    });
                }
            }
            $(window).resize(
                function () {
                    if ($dialog_main.outerHeight() > $(window).height()) {
                        $dialog_main.css({
                            top: 0,
                            left: ($(window).width() - $dialog_main.outerWidth())
                                / 2 + "px"
                        });
                    } else {
                        $dialog_main.css({
                            top: ($(window).height() - $dialog_main.outerHeight())
                                / 2 + "px",
                            left: ($(window).width() - $dialog_main.outerWidth())
                                / 2 + "px"
                        });
                    }
                });
            return self;
        },
        // 取最小值--最大值之间的随机数
        getRandomNum: function (Min, Max) {
            var Range = Max - Min;
            var Rand = Math.random();
            return (Min + Math.round(Rand * Range));
        },// 解除分页按钮事件绑定
        unbindClick: function () {
            $(".page_next").unbind("click");
            $(".page_prev").unbind("click");
            $(".page_goto").unbind("click");
        },
        queryWechatInfos: function (pageNum) {
            var self = this;
            self.unbindClick();
            $("#loading").show();
            $.post("wechat/wechat-info-list", {pageNum: pageNum},
                function (page) {
                    if (page.code != "1000") {
                        alert("查询出错！")
                    }
                    var data = page.data.records;
                    if (data.length > 0) {
                        var html = "";
                        for (var i = 0; i < data.length; i++) {
                            html += '<tr>';
                            html += '<td><p>' + data[i].name
                                + '</p></td>';
                            html += '<td><p>' + data[i].account + '</p></td>';
                            html += '<td><p>' + data[i].password + '</p></td>';
                            html += '<td><p>' + data[i].appId + '</p></td>';
                            html += '<td><p>' + data[i].appSecret
                                + '</p></td>';
                            html += '<td><p>' + data[i].type
                                + '</p></td>';
                            html += '<td><p>' + data[i].memo
                                + '</p></td>';
                            html += '<td><p>' + data[i].createTime
                                + '</p></td>';

                            html += '<td><a href="javascript:;"  wechatId="'
                                + data[i].id
                                + '" class="icon16 gray_del" title="删除"></a></td>';

                            html += '</tr>';
                        }
                        $(".type-index table tbody").empty().html(html);
                        // 处理分页
                        self.pageWechatInfoHandle(page.data, function (pageNum) {
                            self.queryWechatInfos(pageNum);
                        });
                    } else {
                        $(".type-index table tbody")
                            .html(
                                '<tr><td colspan="9" ><p>暂无数据！！</p></td></tr>');
                    }
                    $("#loading").hide();
                });
            return self;
        },// 分页处理
        pageWechatInfoHandle: function (page, fn) {
            var self = this;
            // 上一页
            if (page.current - 1 >= 1) {
                $(".page_prev").click(function () {
                    fn(page.current - 1);
                });
            } else {
                $(".page_prev").unbind("click");
            }
            // 下一页
            if (page.current + 1 <= page.pages) {
                $(".page_next").click(function () {
                    fn(page.current + 1);
                });
            } else {
                $(".page_next").unbind("click");
            }
            // 当前页
            $(".page_cur").text(page.current);
            // 总页数
            $(".page_all").text(page.pages);
            $(".total").text(page.total);
            // 跳转页
            $(".page_goto").click(function () {
                if ($("#goNum").val() == "") {
                    alert("页码不能为空!");
                } else if (isNaN($("#goNum").val())) {
                    alert("页码必须为数字");
                } else if ($("#goNum").val() > page.pages) {
                    alert("页码不能大于总页数，共:" + page.pages + "页");
                } else if ($("#goNum").val() < 1) {
                    alert("页码不能小于1");
                } else {
                    fn($("#goNum").val());
                }

            });
        },
        //微信菜单管理部份
        queryWechat: function (pageNum) {
            var self = this;
            self.unbindClick();
            $("#loading").show();
            $.post("wechat/wechat-info-list", {pageNum: pageNum},
                function (page) {
                    var data = page.data.records;
                    if (data.length > 0) {
                        var html = "";
                        for (var i = 0; i < data.length; i++) {
                            html += '<tr>';

                            html += '<td><p>' + data[i].name
                                + '</p></td>';

                            html += '<td><a href="javascript:;" onclick="editMenu('
                                + data[i].id
                                + ',\'' + data[i].name + '\');"class="icon16 gray_edit" title="编辑菜单"></a></td>';

                            html += '</tr>';
                        }
                        $(".type-count table tbody").empty().html(html);
                        // 处理分页
                        self.pageWechatInfoHandle(page.data, function (pageNum) {
                            self.queryWechat(pageNum);
                        });
                    } else {
                        $(".type-count table tbody")
                            .html(
                                '<tr><td colspan="2" ><p>暂无数据！！</p></td></tr>');
                    }
                    $("#loading").hide();
                });
        },// 删除
        deleteWechatInfo: function (wechatId) {
            var self = this;
            if (confirm("你确定要删除吗？")) {
                $.post("wechat/wechat-delete", {wechatId: wechatId}, function (data) {
                    if (data.code == "1000") {
                        alert("删除成功!!");
                        self.queryWechatInfos(self.pageNum);
                    } else {
                        alert("删除失败!!");
                    }
                });
            }
            return self;
        }
    }
    new index();
})(jQuery);





